#include <string>
#include <io.h>
#include <vector>
#include <iostream>

using namespace std;

/************************************************************************/
/*  获取文件夹下所有文件名
    输入：		
		path	:	文件夹路径
		exd		:   所要获取的文件名后缀，如jpg、png等；如果希望获取所有
					文件名, exd = ""
	输出：
		files	:	获取的文件名列表
	
	shao, 20140707	
*/
/************************************************************************/
void getFiles( string path, string exd, vector<string>& files )
{
	//文件句柄
	long   hFile   =   0;
	//文件信息
	struct _finddata_t fileinfo;
	string pathName, exdName;

	if (0 != strcmp(exd.c_str(), ""))
	{
		exdName = "\\" + exd;
	}
	else
	{
		exdName = "\\*";
	}
	
	if((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(),&fileinfo)) !=  -1)
	{
		do
		{
			//如果是文件夹中仍有文件夹,迭代之
			//如果不是,加入列表
			if((fileinfo.attrib &  _A_SUBDIR))
			{
				if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
					getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
			}
			else
			{
				if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
					files.push_back(pathName.assign(path).append("\\").append(fileinfo.name));
			}
		}while(_findnext(hFile, &fileinfo)  == 0);
		_findclose(hFile);
	}
}

int main()
{
	char * filePath = "D:\\jiangqr\\工作报告";
	vector<string> files;

	//获取该路径下满足要求的文件
	getFiles(filePath, "本周记事*.txt", files);

	

    FILE* file = fopen("D:\\jiangqr\\本周记事2015.txt", "wb");
    
    int size = files.size();
    for (int i = 0;i < size;i++)
    {
        //cout<<files[i].c_str()<<endl;
        fwrite(files[i].c_str(), 1, files[i].length(), file);
        fwrite("\r\n", 1, strlen("\r\n"), file);

        FILE* file2 = fopen(files[i].c_str(), "rb+");
        
        fseek(file2, 0L, SEEK_SET);
        int length=ftell(file2);
        fseek(file2, 0L, SEEK_END);
        length = ftell(file2) - length;

        rewind(file2);
        char data[5000];
        memset(data, 0, sizeof data);
        fread(data, 1, length, file2);

        fwrite(data, 1, length, file);
        fwrite("\r\n", 1, strlen("\r\n"), file);
        fwrite("\r\n", 1, strlen("\r\n"), file);

        fclose(file2);
    }

    fclose(file);

    getchar();

    return 0;
}
